Indexed Predicate Discovery for Unbounded System Verification
نویسندگان
چکیده
Predicate abstraction has been proved effective for verifying several infinite-state systems. In predicate abstraction, an abstract system is automatically constructed given a set of predicates. Predicate abstraction coupled with automatic predicate discovery provides for a completely automatic verification scheme. For systems with unbounded integer state variables (e.g. software), counterexample guided predicate discovery has been successful in identifying the necessary predicates. For verifying systems with function state variables, which include systems with unbounded memories (microprocessors), arrays in programs, and parameterized systems, an extension to predicate abstraction has been suggested which uses predicates with free (index) variables. Unfortunately, counterexample guided predicate discovery is not applicable to this method. In this paper, we propose a simple heuristic for discovering indexed predicates. We illustrate the effectiveness of the approach for verifying safety properties of two systems: (i) a version of the Bakery mutual exclusion protocol, and (ii) a directory-based cache coherence protocol with unbounded FIFO channels per client.
منابع مشابه
Carnegie Mellon University Unbounded System Verification Using Decision Procedure and Predicate Abstraction
Modeling and analysis of systems with large, infinite or parameterized state spaces has received much attention in the last decade. These systems include microprocessors with unbounded buffers and memories; parameterized cache-coherence and communication protocols with unbounded channels; and distributed algorithms for mutual exclusion. Most previous works have either used general purpose theor...
متن کاملPredicate Abstraction based Verification Framework: First results
The Analysis of software artifacts is steadily advancing due to the increase in computational power and new verification methodologies. As a result there is a trend to approach the verification of the implementation level code and systems with unbounded state space rather than verification of abstract hand-built models of code. We consider a methodology which enables the verification of systems...
متن کاملUnbounded System Verification using Decision Procedure and Predicate Abstraction
Designs of hardware and software systems have grown in complexity to meet the demand for improved performance. The complexity of the design often manifests itself in the form of subtle and intricate design flaws and bugs. The cost of these errors can be prohibitive and often dictates the lifetime of a product. Most design teams allocate a substantial amount of their resources in testing and ver...
متن کاملVerifying Reference Counting Implementations
Reference counting is a widely-used resource management idiom which maintains a count of references to each resource by incrementing the count upon an acquisition, and decrementing upon a release; resources whose counts fall to zero may be recycled. We present an algorithm to verify the correctness of reference counting with minimal user interaction. Our algorithm performs compositional verific...
متن کاملEnvironment Abstraction for Parameterized Verification
Many aspects of computer systems are naturally modeled as parameterized systems which renders their automatic verification difficult. In wellknown examples such as cache coherence protocols and mutual exclusion protocols, the unbounded parameter is the number of concurrent processes which run the same distributed algorithm. In this paper, we introduce environment abstraction as a tool for the v...
متن کامل